package com.lfs.admin.service;

import cn.hutool.json.JSONObject;
import com.lfs.admin.model.dto.PddProductPropertyDto;
import com.lfs.admin.model.entity.dataPackage.*;
import com.lfs.admin.model.vo.*;
import com.lfs.dao.entity.PageBean;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

public interface DataRepositoryService {

    PageBean<DataRepositoryEntity> queryDataRepositoryList(DataRepositoryVo dataRepositoryVo);

    PageBean<JSONObject> getUploadDetail(int id, int currentPage, int pageSize);

    int deleteDataRepository(Integer id);

    void updateRepository(DataRepositoryEntity entity);

    List<ProductTypeEntity> productTypeList(List<Integer> ids);

    PddGoodsAuthVO getCurrentCommodityCategory(String name, String shopId);

    List<ShopVo> queryShopListById(List<String> shopIds);

    List<PddGoodsPropertiesVO> searchPddBrand(String value, Long catId, String shopId);

    ShopVo synchronousData(String shopId);

    List<ProductPropertyTemplateEntity> productPropertyTemplateList(String shopId);

    ProductPropertyTemplateEntity getProductPropertyTempById(Integer ids);

    void deleteProductPropertyTempById(Integer ids);

    void updateOrAddProductPropertyTemp(ProductPropertyTemplateEntity productPropertyTemplate);

    List<PddGoodsPropertiesVO> getNodeData(String catPropId, String shopId);

    List<TitleTemplateEntity> getTitleTemplates();

    TitleTemplateEntity getTitleTemplatesById(Integer id);

    void updateOrAddTitleTemplate(TitleTemplateEntity titleTemplate);

    void deleteTitleTemplateById(Integer id);

    // List<DataUploadImageVO> getSpontaneousTitle(SpontaneousTitleDto spontaneousTitleDto);

    List<DataUploadDetailVO> getDefaultTitle(List<Integer> ids);

    TitleTypeVO gainWord(String titleTypeEnum);

    void addGainWord(List<TitleWordEntity> titleWordEntity);

    List<Map<String, Object>> releaseGoods(PddProductPropertyDto pddProductPropertyDto);

    List<List<Map<String, Object>>> batchReleaseGoods(List<PddProductPropertyDto> pddProductPropertyDto);

    void exportWillReleaseExcel(HttpServletResponse response, String seriesName, Integer repositoryId);

    void importWillReleaseExcel(PddProductPropertyDto pddProductPropertyDto, MultipartFile file);

    void prolongExpireTime(Integer id);

    void copySeries(Integer id, Integer count);

    PageBean<DataUploadDetailVO> queryProductRecordList(DataUploadDetailVO dataUploadDetailVO);

    void updateProductRecord(DataUploadDetailVO dataUploadDetailVO);

    void deleteProductRecordById(Integer id);

    ProductGoodsDataVO getProductGoodsData(Integer id);

    void insertRepositoryData(DataRepositoryEntity dataRepositoryEntity);

    void updateRepositoryData(DataRepositoryEntity dataRepositoryEntity);
}
